//
//  CouponFormItem.h
//  SYPerfectDemo
//
//  Created by Lssyyy on 2019/8/8.
//  Copyright © 2019年 Lssyyy. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, CouponFormItemType) {
    //普通类型 标题、输入框
    CouponFormItemTypeNormal = 0,
    //选择时间
    CouponFormItemTypeTimeSelected = 1,
    //选择优惠券类型
    CouponFormItemTypeChooseCouponType = 2,
    //选择是否上架
    CouponFormItemTypeChooseIsPublish = 3,
    
};

typedef NS_ENUM(NSInteger, CouponFormItemUnitType) {
    CouponFormItemUnitTypeNone = 0, // 无单位
    CouponFormItemUnitTypeYuan, // 元
    CouponFormItemUnitTypePieces, //张
    CouponFormItemUnitTypeCustom, // 自定义单位
};
@interface CouponFormItem : NSObject
/**
 表单条目类型
 */
@property (nonatomic, assign) CouponFormItemType itemType;

@property (nonatomic, assign) CGFloat defaultHeight;
/**
 表单条目标题，表单标题为单行显示，尽可能简短，若标题太长，会牺牲字体大小以达到显示完全的效果
 */
@property (nonatomic, copy, nonnull) NSString *title;
@property (nonatomic, strong, nonnull) NSAttributedString *attributedTitle;

/**
 表单条目详情
 */
@property (nonatomic, copy, nullable) NSString *info;

/**
 表单条目占位字符
 */
@property (nonatomic, copy, nullable) NSString *placeholder;
@property (nonatomic, strong, nullable) NSAttributedString *attributedPlaceholder;

/**
 是否显示表单条目占位字符 YES:显示 NO:不显示 --- 新增 default is YES；详情 default is NO
 */
@property (nonatomic, assign) BOOL showPlaceholder;

/**
 表单条目键盘类型
 */
@property (nonatomic, assign) UIKeyboardType keyboardType;

/**
 表单条目是否可编辑 YES:可编辑 NO:不可编辑
 */
@property (nonatomic, assign) BOOL editable;

/**
 表单条目是否必填(必选) YES:必填(必选) NO:可填(可选)
 */
@property (nonatomic, assign) BOOL required;

/**
 条目附带单位
 */
@property (nonatomic, copy, nullable) NSString *unit;

/**
 表单条目单位类别
 */
@property (nonatomic, assign) CouponFormItemUnitType itemUnitType;

/**
 ContractFormItem_Add 快捷构建新增表单条目
 
 @param title 标题
 @param info 详情
 @param itemType 条目类别
 @param editable 是否可编辑
 @param required 是否必填
 @param keyboardType 键盘类别
 */
FOUNDATION_EXPORT CouponFormItem *couponItem_Add(NSString * _Nonnull title, NSString *info,NSString *placeHolder, CouponFormItemType itemType, BOOL editable, BOOL required, UIKeyboardType keyboardType);
@end
